﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UFPC.Models
{
    public interface IUfpcRepository
    {
        IList<Order> ListOrders();
        IList<Product> ListProducts();
        IList<Customer> ListCustomers();
        IList<Inventory> ListInventories();

        IList<CustomerProductPrice> GetProductsByCustomer(int id);
        IEnumerable<OrderDetail> OrderDetails(int id);

        Order OrderSummary(int id);
        Product ProductDetails(int id);
        Customer CustomerDetails(int id);
        CustomerProductPrice CustomerProduct(int customerId, int productId);

        void Save();

        void AddProduct(Product product);
        void AddProductToCustomer(CustomerProductPrice customerProduct);
        void AddCustomer(Customer customer);
        void AddInventory(Inventory inventory);
        void AddOrder(Order order);
        void AddOrderDetail(OrderDetail orderDetail);

        void DeleteCustomer(Customer customer);
        void DeleteOrder(Order order, IEnumerable<OrderDetail> orderDetails);
        void DeleteProduct(Product product);
        void DeleteProduct(CustomerProductPrice customerProduct);
    }
}
